home *** CD-ROM | disk | FTP | other *** search
/ Freelog 121 / FreelogMagazineJuilletAout2014-No121.iso / Outils / Adobe-Air / adobe-air_13.exe / [0] / setup.swf / scripts / mx / containers / Form.as < prev    next >
Text File  |  2014-03-27  |  5KB  |  166 lines

  1. package mx.containers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import mx.containers.utilityClasses.BoxLayout;
  5.    import mx.controls.Label;
  6.    import mx.core.Container;
  7.    import mx.core.IInvalidating;
  8.    import mx.core.IUIComponent;
  9.    import mx.core.mx_internal;
  10.    import mx.styles.StyleManager;
  11.    
  12.    use namespace mx_internal;
  13.    
  14.    public class Form extends Container
  15.    {
  16.       
  17.       mx_internal static const VERSION:String = "3.0.0.0";
  18.       
  19.       private static var classInitialized:Boolean = false;
  20.        
  21.       
  22.       mx_internal var layoutObject:BoxLayout;
  23.       
  24.       private var measuredLabelWidth:Number;
  25.       
  26.       public function Form()
  27.       {
  28.          layoutObject = new BoxLayout();
  29.          super();
  30.          if(!classInitialized)
  31.          {
  32.             initializeClass();
  33.             classInitialized = true;
  34.          }
  35.          showInAutomationHierarchy = true;
  36.          mx_internal::layoutObject.target = this;
  37.          mx_internal::layoutObject.direction = BoxDirection.VERTICAL;
  38.       }
  39.       
  40.       private static function initializeClass() : void
  41.       {
  42.          StyleManager.registerInheritingStyle("labelWidth");
  43.          StyleManager.registerSizeInvalidatingStyle("labelWidth");
  44.          StyleManager.registerInheritingStyle("indicatorGap");
  45.          StyleManager.registerSizeInvalidatingStyle("indicatorGap");
  46.       }
  47.       
  48.       override public function addChild(param1:DisplayObject) : DisplayObject
  49.       {
  50.          invalidateLabelWidth();
  51.          return super.addChild(param1);
  52.       }
  53.       
  54.       override public function styleChanged(param1:String) : void
  55.       {
  56.          if(!param1 || param1 == "styleName" || StyleManager.isSizeInvalidatingStyle(param1))
  57.          {
  58.             invalidateLabelWidth();
  59.          }
  60.          super.styleChanged(param1);
  61.       }
  62.       
  63.       override public function removeChildAt(param1:int) : DisplayObject
  64.       {
  65.          invalidateLabelWidth();
  66.          return super.removeChildAt(param1);
  67.       }
  68.       
  69.       function calculateLabelWidth() : Number
  70.       {
  71.          var _loc5_:DisplayObject = null;
  72.          if(!isNaN(measuredLabelWidth))
  73.          {
  74.             return measuredLabelWidth;
  75.          }
  76.          var _loc1_:Number = 0;
  77.          var _loc2_:Boolean = false;
  78.          var _loc3_:int = numChildren;
  79.          var _loc4_:int = 0;
  80.          while(_loc4_ < _loc3_)
  81.          {
  82.             if((_loc5_ = getChildAt(_loc4_)) is FormItem)
  83.             {
  84.                _loc1_ = Math.max(_loc1_,FormItem(_loc5_).getPreferredLabelWidth());
  85.                _loc2_ = true;
  86.             }
  87.             _loc4_++;
  88.          }
  89.          if(_loc2_)
  90.          {
  91.             measuredLabelWidth = _loc1_;
  92.          }
  93.          return _loc1_;
  94.       }
  95.       
  96.       function invalidateLabelWidth() : void
  97.       {
  98.          var _loc1_:int = 0;
  99.          var _loc2_:int = 0;
  100.          var _loc3_:IUIComponent = null;
  101.          if(!isNaN(measuredLabelWidth) && initialized)
  102.          {
  103.             measuredLabelWidth = NaN;
  104.             _loc1_ = numChildren;
  105.             _loc2_ = 0;
  106.             while(_loc2_ < _loc1_)
  107.             {
  108.                _loc3_ = IUIComponent(getChildAt(_loc2_));
  109.                if(_loc3_ is IInvalidating)
  110.                {
  111.                   IInvalidating(_loc3_).invalidateSize();
  112.                }
  113.                _loc2_++;
  114.             }
  115.          }
  116.       }
  117.       
  118.       [Bindable("updateComplete")]
  119.       public function get maxLabelWidth() : Number
  120.       {
  121.          var _loc3_:DisplayObject = null;
  122.          var _loc4_:Label = null;
  123.          var _loc1_:int = numChildren;
  124.          var _loc2_:int = 0;
  125.          while(_loc2_ < _loc1_)
  126.          {
  127.             _loc3_ = getChildAt(_loc2_);
  128.             if(_loc3_ is FormItem)
  129.             {
  130.                if(_loc4_ = FormItem(_loc3_).itemLabel)
  131.                {
  132.                   return _loc4_.width;
  133.                }
  134.             }
  135.             _loc2_++;
  136.          }
  137.          return 0;
  138.       }
  139.       
  140.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  141.       {
  142.          super.updateDisplayList(param1,param2);
  143.          mx_internal::layoutObject.updateDisplayList(param1,param2);
  144.       }
  145.       
  146.       override public function addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  147.       {
  148.          invalidateLabelWidth();
  149.          return super.addChildAt(param1,param2);
  150.       }
  151.       
  152.       override protected function measure() : void
  153.       {
  154.          super.measure();
  155.          mx_internal::layoutObject.measure();
  156.          calculateLabelWidth();
  157.       }
  158.       
  159.       override public function removeChild(param1:DisplayObject) : DisplayObject
  160.       {
  161.          invalidateLabelWidth();
  162.          return super.removeChild(param1);
  163.       }
  164.    }
  165. }
  166.